1. Technical Field
The present invention relates in general to a system and method for remote code integrity in distributed systems. More particularly, the present invention relates to a system and method for decrypting the remote code using a first key, invoking the decrypted remote code, and re-encrypting the remote code using a second key.
2. Description of the Related Art
Businesses develop computer systems to exchange information between groups within the same business and between external groups, such as vendors or customers. Different groups may be located in close proximity or the different groups may be located at distant locations. For example, a business may have some groups located within a building complex and may have other groups located in a different country. Computer systems developed to exchange information between groups typically employ a distributed computer system.
A distributed computer system is a type of computing environment in which different components and objects comprising an application are located on different computers connected to a computer network. Distributed computer system equipment communicate with each other and exchange information over a computer network. Distributed computer systems typically use one or more servers to communicate with one or many clients that employ remote code installations. The remote components are trusted to deliver accurate information to the server. A challenge found, however, is that the integrity of a remote code installation is rarely verified.
Code de-compilation has been a concern of many businesses. Once remote code is de-compiled at a remote client, a programmer with remote client access may modify the remote code and maliciously change the remote code's functionality. Existing solutions may use encryption keys to protect the remote code at the remote client. However, the remote code is decrypted and stored in a nonvolatile storage area which makes the code vulnerable to malicious attacks. It is imperative to verify the integrity of the remote code in order to ensure proper functioning of the distributed computer system since the remote code may be altered transparent to a central server.
What is needed, therefore, is a system and method that protects remote code from being altered and notifies a server if a malicious attack to the remote code is detected.